package net.zoneland.knowledge.service;

import com.github.pagehelper.PageInfo;
import net.zoneland.knowledge.model.LoginUserPojo;
import net.zoneland.knowledge.model.MeetingQr;
import net.zoneland.knowledge.model.MeetingSignIn;

import java.util.List;

/**
 * 会议业务接口.
 * @author chw.
 * @version V1.0
 * 2022-11-18
 */
public interface MeetingQrService {

    /**
     * 根据会议id获取会议信息.
     * @param id 会议id
     * @return 会议信息
     */
    MeetingQr search(final String id);

    /**
     * 根据会议id修改会议状态
     * @param meetingQr 会议二维码实体类
     * @return 删除条数
     */
    int editMeetingQrStatus(final MeetingQr meetingQr);

    /**
     * 根据创建人id查询创建的会议
     * @param creatorId 创建人id
     * @return 创建会议集合
     */
    List<MeetingQr> queryMeetingByCreateId(final String creatorId);

    /**
     * 查询参会二维码
     * @param id 主键id
     * @return
     */
    MeetingQr queryMeetingQrCode(final String id);

    /**
     * 会议详情
     * @param id 会议(二维码).
     * @return
     */
    MeetingQr queryMeetingContent(final String id);

    /**
     * 保存会议.
     * @param meetingQr 会议信息
     * @param loginUserPojo 登录用户信息
     */
    int saveMeeting(final MeetingQr meetingQr, final LoginUserPojo loginUserPojo);

    /**
     * 保存参会人员信息
     * @param meetingSignIns 参会人员信息
     */
    void saveMeetingAttendee(final List<MeetingSignIn> meetingSignIns);


    /**
     * 删除会议签到参会人员
     * @param id id
     */
    void deleteSignInfo(final String id);

    /**
     * 删除会议表参会人员数量，更新签到数量.
     * @param meetingId
     */
    void deleteImportCountNum(final String meetingId);

    /**
     * 会议二维码分页数据
     * @param currPage
     * @param pageSize
     * @param meetingQr
     * @return
     */
    PageInfo<MeetingQr> queryPager(final Integer currPage, final Integer pageSize, final MeetingQr meetingQr);
}
